/*
 * Plane.h
 *
 *  Created on: Apr 29, 2009
 *      Author: wrice
 */

#ifndef PLANE_H_
#define PLANE_H_
#include "MyVideoTrace.h"
namespace MyVideoTrace {

class Plane {
public:
	// http://en.wikipedia.org/wiki/Plane_(mathematics)#Define_a_plane_with_a_point_and_a_normal_vector
	// equation: xOfNormal * X + yOfNormal * Y + zOfNormal * Z - d = 0
	// where d = dot_product(normal, aPointOnPlane)
	Plane( Vector3f normal, Point3D aPointOnPlane );

	virtual float distance( Point3D aPoint ) const;

private:
	Vector3f normal_;
	Point3D aPointOnPlane_;

	float getD() const;

public:	virtual ~Plane() {}
};

}
#endif /* PLANE_H_ */
